Data storage in a trust-no-one environment requires encryption keys to be protected. Data sharing requires keys to be shared. These two requirements contradict each other, which is what our key encryption mechanism will solve: A key encryption mechanism that achieves a trust-no-one architecture and facilitates data sharing.
Having direct hardware or database access typically provides a backdoor to shared data in most conventional computer systems; compromising security. An invention of trust-no-one access control is highly desirable.
In a typical computer system, individual records need to be decrypted in order to be shared or regrouped. An invention that can share or regroup encrypted data without any decryption is a more efficient improvement.
In most modern systems, sharing encrypted data requires sharing encryption keys in order for recipients to trust data, to trust the data's origin, and to decrypt data. Key management is an expensive operating overhead in systems that have a lot of keys, data, and users. Alternatively, some systems decrypt and share unencrypted data to avoid key management overhead, and consequently, compromising data security and privacy. An invention that allows sharing encrypted data and encryption keys with minimal key management overhead is highly desirable.
Using this mechanism, records can be stored in their encrypted form without storing any of the encryption keys. No centralized key store is required. None of the record keys, recordset keys, entity keys, token secrets, or the user's passwords, are stored directly in the database. Having direct hardware or database access does not automatically mean one has data access, which is the cornerstone of “Trust No-One” Architecture.